package com.tarena.lbs.basic.service.impl;

import com.tarena.lbs.basic.dao.repository.TagRepository;
import com.tarena.lbs.basic.pojo.po.TagLibraryPO;
import com.tarena.lbs.basic.pojo.vo.TagLibraryVO;
import com.tarena.lbs.basic.pojo.vo.TagVO;
import com.tarena.lbs.basic.service.TagService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

@Service
@Slf4j
public class TagServiceImpl implements TagService {
    @Autowired
    private TagRepository tagRepository;
    @Override
    public Map<String, List<TagVO>> getAllTagsWhereParentIdEqualsId() {
        Map<String, List<TagVO>> result = new HashMap<>();
        List<TagLibraryPO> parentTags = tagRepository.counts();
        List<TagVO> tagVOList = new ArrayList<>();
        for (TagLibraryPO tagLibrary : parentTags) {
            TagVO tagVO = new TagVO();
            tagVO.setTagCategoryName(tagLibrary.getTagName());

            TagLibraryVO tagLibraryVO = new TagLibraryVO();
            BeanUtils.copyProperties(tagLibrary, tagLibraryVO); // 确保属性名称匹配
            tagVO.setTagLibraryBO(tagLibraryVO); // 假设 TagVO 有一个 setTagLibraryBO 方法

            tagVOList.add(tagVO);
        }
        result.put("用户标签", tagVOList);
        return result;







//        Map<String, List<TagVO>> result = new HashMap<>();
//        List<TagLibraryPO> parentTags = tagRepository.counts(); // 假设这是获取所有父标签的列表
//
//        for (TagLibraryPO parentTag : parentTags) {
//            List<TagLibraryPO> tagLibraries = tagRepository.findTagsByParentId(parentTag.getId());
//            if (tagLibraries != null && !tagLibraries.isEmpty()) {
//                List<TagVO> tagVOList = new ArrayList<>(); // 每次父标签循环都初始化一个新的列表
//                for (TagLibraryPO tagLibrary : tagLibraries) {
//                    TagVO tagVO = new TagVO();
//                    tagVO.setTagCategoryName(parentTag.getTagName());
//
//                    TagLibraryVO tagLibraryVO = new TagLibraryVO();
//                    BeanUtils.copyProperties(tagLibrary, tagLibraryVO); // 确保属性名称匹配
//                    tagVO.setTagLibraryBO(tagLibraryVO); // 假设 TagVO 有一个 setTagLibraryBO 方法
//
//                    tagVOList.add(tagVO);
//                }
//                result.put(parentTag.getTagName(), tagVOList); // 将当前父标签的子标签列表放入结果中
//            }
//        }
//
//        return result;
    }

}
